#ifndef JCONCURRENT_COMPILERTEST_H
#define JCONCURRENT_COMPILERTEST_H

#include "jconcurrent_global.h"

namespace JConcurrentPrivate {

template<class T>
class HasResultType
{
    typedef char Yes;
    typedef void *No;
    template<typename U> static Yes test(int, const typename U::result_type * = 0);
    template<typename U> static No test(double);

public:
    enum { Value = (sizeof(test<T>(0)) == sizeof(Yes)) };
};

}  // namespace JConcurrentPrivate

#endif  // JCONCURRENT_COMPILERTEST_H
